pulsar124fandomcom-20200214-history
User guide
= Quick start guide = # Test how fast your camera can shoot with the rail (my Canon 50D can do up to 4 fps continuously with a fast memory card), and how fast your flash can recycle at the power level required (less power means shorter recycle time). Usually flashes can do a short sequence very rapidly (a few fps) - useful for one-point stacking with live creatures, but have to be set to lower fps for longer sequences (studio work; usually done with two-point stacking). Specific examples: my flash Yongnuo 560-III + external battery, at 1/16 power, can do at least 30 shots at 4 fps, up to 125 shots at 1 fps, and at least 150 shots when using 0.5 fps. Set the FPS rail parameter (keys "8"/"9") accordingly: the largest allowed value (say, 4 fps) for outdoor one-point shooting, and something like 1 fps or even 0.5 fps for studio work (when a large number of shots will be made). # Determine the depth of field for your macro lens (will depend mostly on magnification and f-number). This can be done experimentally (shoot a few short focus stacking sequences with varying mm/frame parameter), or estimated theoretically (see e.g. here). Example: my best super-macro lens (produces 5:1 equivalent magnification when used in a reversed position on top of three extension tubes), Schneider 28 mm f/4 Componon enlarger lens, has DoF around 50 μm when used wide open (where it is sharpest). Set the μm/frame rail parameter (key "5"/"6") to be equal or a bit less than the DoF of your lens. This will ensure no sharpness gaps in the stacked photo. # "Outdoor" (single-point stacking) setting. Choose the number of shots to take (N_frames; keys "2"/"3"). Set the tripod with rail and camera attached near the subject. Use tripod knobs for crude positioning, then sideways knob on the Velbon rail and the "1"/"A" buttons on the controller unit to correctly frame the subject and bring it into focus. Use "1"/"A" buttons to bring the focus to the foreground part of the subject, hold your flash with a small softbox close to the subject, and then press "D" on the controller. Alternatively, use "1"/"A" keys to bring focus to the background of the subject, and then press "*". You can interrupt the stacking at any time by pressing any key on the controller unit. # "Studio" (two-point stacking) setting. If doing non-continuous stacking, use "#8" and "#9" to change the two relevant delay parameters (first one is the time for the vibrations to die off - the longer the better; the second one should be longer than the exposure time if not using a flash). Position the camera and the flash, use "1"/"A" keys to bring focus to the foreground of the subject, press "4" to set the foreground point, then use "1"/"A" keys to find the background position, press "B" to memorize it. To double check, you can press "7" and "C" to move back and forth between the two points. Use "1"/"A" and "4"/"B" again if you need to fine-tune/reset any of the points. Once satisfied, press "0" / "#0" to start continuous / non-continuous two-point focus stacking (you don't have to be at that point). As with 1-point stacking, you can interrupt the stacking at any time by pressing any key on the controller unit. Unlike the 1-point stacking case, interrupting 2-point stacking puts the rail in a special "paused" mode. In this mode, you can travel by a single frame (without taking a shot) by using "#1"/"#A" keys, or travel by large - 10 frame - steps, by pressing "1"/"A". Once you move to the last failed frame location, pressing "0" will resume stacking from that frame. Alternatively, you can press "#B" to abort 2-point stacking. = Backlash compensation = Overview Backlash is an unavoidable issue occurring in many mechanical systems, in particular in macro rails. It manifests itself in physical coordinates not always matching the program coordinates, e.g. every time the direction of motion changes to the opposite. Starting from s0.10, full backlash compensation is implemented in my stacking rail software. Positive direction (from foreground towards background) is assumed to be a good one (no backlash compensation required); all motions in the negative direction (from background to foreground) require backlash compensation to be accurate (this is manifested by the rail slightly overshooting the target when moving in the negative direction, and then instantly moving forward by the backlash amount). The backlash compensation is implemented in such a way that every time the rail comes to a stop it is fully backlash compensated (so the physical coordinate = program coordinate); also stacking done in the positive direction is always accurate (backlash compensated). The only inaccurate function is single point focus stacking in the negative direction (from background to foreground; "*"). As it is more natural to always start stacking from foreground to background, this should not be a serious issue. For 1-point stacking accuracy is not critical (as it is normally done outdoors with live creatures, where you can't possible hope to do it precisely), so doing 1-point-stacking in the negative direction (by pressing "*") should be fine. The tricky part is backlash compensation for the rewind function (key "1"). I implemented what is likely as convenient as it can be workaround for this functionality: the rewind key emulates the behavior of the fast-forward key ("A"). More specifically, if the current rail coordinate is x'', and one presses the fast-forward key "A" for ''t seconds and then releases it, the rail will travel d'' mm before coming to a stop, with the final coordinate being ''x+''d''. My emulation feature ensures that when one presses the rewind key "1" for the same t'' seconds and then releases the key, the rail will do a full backlash compensation loop, and eventually stop at the coordinate ''x-''d''. In other words, the same amount of pressing will result in the same degree of traveling, with a twist that it will take longer for the rail to come to a complete stop when doing rewind. If you find the inconveniences caused by the backlash compensation feature outweigh the better accuracy achieved, you can always disable backlash compensation by setting the parameter BACKLASH_MM to zero in stacker.h . Measuring backlash for your rail My backlash compensation algorithm needs to know the largest backlash manifested by the rail, under all realistic conditions. It is okay to overestimate this parameter (the only drawback being all backlash compensated movements will take a bit longer), but underestimation will result in a loss of positional accuracy. From my measurements, maximum backlash for the rail I am using, Velbon Mag Slider, is 0.2 mm. I use it as the default value for the parameter BACKLASH_MM in stacker.h . You can leave it as is if you are using the same rail; but if you are using a different rail, keep reading. It is convenient to make use of the focus stacking functionality of my automated rail to measure the rail's maximum backlash. The procedure is as follows. # Set the parameter BACKLASH_MM to zero in stacker.h (disabling backlash compensation); upload the software to the controller. # Set up your rail with your camera attached in the most balanced way (this will maximize the backlash effect): make sure the rail is leveled (horizontal), and that the camera is well balanced (not weighing too much on one or the other end of the rail). # Point the camera with the maximum magnification lens you have (I used 5:1 macro) to a slanted target with lots of nice micro-texture (I used a slanted piece of grey-colored paper). # Set up proper lighting (a flash, could be with a softbox). # Use the controller to rewind the rail to the middle point (roughly). Memorize that point as a foreground point (press "4"). # Rewind the rail backwards by an amount > expected backlash (e.g., by 2 mm). # Press "7" key to travel back to the foreground point. As the traveling is done in the positive (good) direction, the rail position is fully backlash compensated (accurate). # Use "#7" to take the reference shot. # Use keys "5"/"6" to select the appropriate value for the micron/frame parameter. A reasonable choice would be to set it to 1/2 of the DoF of your macro lens (in my case, it was 25 um). # Use keys "2"/"3" to select the required number of shots in 1-point stacking mode, N_frames. Make it large enough that the product of this and the previous (um/frame) parameters is large enough to cover any conceivable backlash your rail might have. Say, use 20 to get the stacking length 20x25 um/frame = 0.5 mm. # Press "A" to move rail further by an amount larger than your likely backlash (say, 2 mm). Memorize that point as a background point (press "B"). # Press "7" to go backward to the foreground point. The rail thinks it is at the background point, but it actually lagged behind by the amount = backlash of your rail. # Press "*" to start 1-point focus stacking in the negative direction. # Copy both the reference shot and the N_frames stacking sequence to your computer, process them identically in a way emphasizing micro-texture (high contrast, reasonable amount of sharpening). You might want to do stack alignment for convenience. # Find which of the stacking shots looks the closest to the reference shot. The number of this shot in the stacking sequence will tell you how large is the backlash of the rail. For example, if the best matching shot is #9 (and numbering starts from 1), the backlash = (9-1)x um/frame, or 200 um in our example (um/frame = 25). # Assign the backlash value you found to the parameter BACKLASH_MM in stacker.h , and compile/upload the code to the controller. = Display = The 6-line, 14 characters per line LCD display (Nokia 5110) has the following layout: https://farm6.staticflickr.com/5802/21717642764_2acc248910.jpg https://farm1.staticflickr.com/678/21819165744_e66e1ffc67.jpg Since s0.10, I am using my own bitmaps for the battery charge status (4 levels) and rewind/fast-forward symbols: https://farm1.staticflickr.com/719/23265277609_1733b14456.jpg Line 1: single-point shooting parameters * Input parameter N_frames (can be modified via keys "2" / "3"). * Total stacking depth in mm. * Stacking time in seconds. Line 2: two-point shooting parameters * Number of shots to take (derived self-consistently from the distance between the background and foreground stacking points and the parameter μm/frame). * Total stacking depth in mm (distance between the background and foreground stacking points). * Stacking time in seconds. Line 3: stacking parameters * Parameter μm/frame (use keys "5"/"6" to change it). * Parameter frames/second (FPS; use keys "8"/"9" to change it). Line 4: two stacking points * FXXX: coordinate of the foreground stacking point in mm. (Zero is at the foreground limiting switch.) Can be set or reset to the current position by using key "4". * BXXX: coordinate of the background stacking point in mm. (Zero is at the foreground limiting switch.) Can be set or reset to the current position by using key "B". Line 5: current coordinate * Normally displays the current position in mm (distance from the foreground limiting switch). Sometimes shows other information. * In particular, this line will show the three parameters relevant for non-continuous stacking (all in seconds) when the key "#" is pressed: First_delay ("#8"), Second_delay ("#9"), and the estimated stacking time. Line 6: status line * Status letter: "B" when breaking, "C" when doing calibration, "P" when in a paused mode (interrupted 2-point stacking), "S" when doing non-continuous stacking (initiated with "#0"). * Motion status: ** <- : rewinding to the foreground limiter; ** -> : fast-forwarding to the background limiter; ** < : doing stacking towards the foreground limiter; ** > : doing stacking towards the background limiter. * Current frame: live frame counter during focus stacking. * 2-points status: two characters, left one for the foreground point (can be empty if it is not set yet, "f" if it is set, and "F" if it is set and we are currently at that point) and the right one for the background point (empty / "b" / "B"). * Battery status: ** When compiled with BATTERY_DEBUG macro parameter, shows the voltage per AA battery, multipled by 100. (So 1.25V will show as 125.) ** When compiled without BATTERY_DEBUG macro parameter, shows bitmap images corresponding to 4 levels of a battery charge, from empty to full. = Keys = My stacker has 16 different functions directly associated with each key on the 4x4 keypad, plus 15 more two-key combinations (always starting with the key "#"). The meaning of some keys changes when you are in a "paused" mode. Here is the list of the single-key and two-key functions (they often come in pairs): Group A: Focus stacking keys Group B: Change parameters One click moves to the next value in a table of values. (The values in the table can be changed inside stacker.h file.) Pressing and holding a key will result in a fast skipping through the table (except for #8, #9 keys). The keys are ignored in the "paused" mode. Group C: Using two memory registers To permanently store most frequently used parameter combinations (parameters N_frames, μm/frame, FPS, coordinates of the two points for two-point stacking, two delay parameters). Stored in EEPROM (non-volatile memory.) The keys are ignored in the "paused" mode. Group D: Miscellaneous Key maps You can print and carry with you these key maps: Single-key functions https://farm1.staticflickr.com/603/21853903588_a208b30acc.jpg Two-key (# + key) functions https://farm1.staticflickr.com/779/21853601940_0232420dd9.jpg Single-key functions (in paused mode) https://farm6.staticflickr.com/5826/23005985213_80761e16e5.jpg Two-key (# + key) functions (in paused mode) https://farm6.staticflickr.com/5710/23337370390_aa4a519031.jpg